﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RayDen.Library.Components.Color.Types;
using RayDen.Library.Core.Primitives;
using RayDen.RayEngine;
using RayDen.RayEngine.Core.Interface;
using RayDen.RayEngine.Core.Types;

namespace RayEngine.Spectral.Engine
{
    public class BasePathSampler : IPathSampler
    {       
        public IColorType Radiance;
        public IColorType Throughput;
        public int Depth;
        public  int RayIndex;
        public RayData PathRay;
        public Sample Sample;
        public PathBuffer Buffer;

        public virtual void InitPath(IPathProcessor buffer)
        {
            this.Buffer = (PathBuffer) buffer;
        }
        public virtual bool FillRayBuffer(RayBuffer rayBuffer)
        {
            return false;
        }

        public virtual void Advance(RayBuffer rayBuffer, SampleBuffer consumer)
        {
            
        }

        public virtual void Splat(SampleBuffer sampleBuffer)
        {
            
        }
    }
}
